1. Field
The present description relates to a method, system, and computer program for preserving a set of data in a storage area network.
2. Description of Related Art
One or more hosts may store large quantities of data in a group of storage units, which is typically controlled by a storage controller. An example of such a storage controller is the IBM TotalStorage® Enterprise Storage Server® (ESS). A storage controller such as the ESS may provide a number of functions accessible by the hosts for protecting data, backing the data up, and making the data available for use.
Amongst the functions which may be provided by a data controller is a data preservation function which can preserve an identified set of data at a particular point in time. For example, the ESS storage controller supports a data preservation function referred to as “FlashCopy” which enables a copy to be made of a set of tracks in a source volume. One feature of such data preservation functions is that the data of the copy is frequently made immediately available for read or write access. The identified data may be for example, a set of tracks which can consist of an entire volume, a data set, or just a selected set of tracks, for example.
If a host attempts to update the data on the source volume which is being preserved, that update is typically temporarily delayed until the old data to be updated is copied to a target volume for preservation. Such temporary update blocking or delaying is often referred to as a “collision” and can significantly slow updating of the source volume. This problem may be aggravated where the source volume is a relatively fast access volume such as a solid state drive such as flash memory, for example, and the target volume is a relatively slower access volume such as a hard disk drive, for example. Thus, the slower performance of the target drive may be imposed on the faster source volume while waiting for data to be successfully copied to the target volume.
In one mode of a data preservation function, a copy of all of the data to be preserved at the particular point in time, is made by copying the identified data from the source volume to the target volume, typically in a background copy mode. Once a particular data location of the set of identified data on the source volume has been successfully copied to the target volume by the background copy operation, that data location on the source volume is freed for subsequent immediate updating by a host. Hence, if the host subsequently updates that data location, the update may proceed without incurring a “collision” and thus may proceed without delay. Thus, as the background copy operation from the source volume to the target volume progresses, fewer and fewer source volume locations are blocked from immediate updates such that the collision rate can rapidly decrease.
However, for some data storage operations, copying all of the data to be preserved at a point in time may not be suitable. For example, some storage units are configured for improved data storage efficiency. Examples of efficiency configurations include the “Track Space Efficient” and “Extent Space Efficient” volume configurations often used in ESS data storage systems. A track “extent” typically contains a beginning track, an ending track, and all the tracks between the beginning track and the end track.
In such volume efficiency configurations, a different mode of operation may be used for a data preservation function. For example, instead of copying all of the data to be preserved at a point in time, a “block on write” paradigm may be followed. Accordingly, when a particular set of data is identified for preservation at a point in time, no copying of data need be done at that point. Instead a comparable set of space is made available for possible future writes on a target volume of sufficient size such that it can hold on the target volume the entire set of data identified for preservation if need be. If any write activity is done to update the identified set of data on the source volume, the write to the source volume is temporarily blocked while the old data at the location to be updated is first transferred to the target volume for preservation. After the transfer of that old data to be updated completes, the write to the source volume to update the now copied old data is then allowed to complete. However, the collision rate and performance impact can be substantially higher in this mode of data preservation.